package cn.sc.summer.domain.login;

import cn.sc.summer.protocol.form.login.AppLoginForm;
import cn.sc.summer.protocol.form.login.LoginForm;
import cn.sc.summer.protocol.form.login.SmsCodeLoginForm;

import java.util.Map;

/**
 * 类名：用户登录接口
 *
 * @author a-xin
 * @date 2024/10/5 11:30
 */
public interface SysLoginService {

    /**
     * 用户名密码登录
     *
     * @param loginForm 登录信息表单
     * @return 登录token信息
     */
    Map<String, Object> login(LoginForm loginForm);

    /**
     * 手机验证码登录
     *
     * @param smsCodeLoginForm 登录信息表单
     * @return 登录token信息
     */
    Map<String, Object> smsLogin(SmsCodeLoginForm smsCodeLoginForm);

    /**
     * 手机小程序登录
     *
     * @param appLoginForm 登录信息表单
     * @return 登录token信息
     */
    Map<String, Object> appLogin(AppLoginForm appLoginForm);

    /**
     * 登出处理
     */
    void logout();
}
